from celery_tasks.main import app
from utils.Verification_code.yuntongxun.sms import CCP  # 导入短信发送接口


# bind: 会将第一个参数绑定到函数的第一参数
# name: 表示任务的名称
@app.task(bind=True, name="send_sms_code")
def send_sms_code(self, mobile, sms_code, time):
    try:
        ccp = CCP()
        result = ccp.send_template_sms(mobile, [sms_code, time], 1)
    except Exception as e:
        result = -1
    if result == -1:
        # - countdown: 间隔的时间，如果不设计间隔时间默认180秒后重试
        # - max_retries: 重试的次数
        # - exc: 失败之后报出的异常信息
        raise self.retry(countdown=3, max_retries=3, exc=Exception('发送短信失败了'))
